package com.cqhilink.api.common.utils;

import java.io.*;
import java.util.Properties;

/**
 * 读取配置文件
 * Created by wangzhen on 2016/9/28.
 */
public class ConfigPropertyTool {
    private static Properties props = new Properties();
    //配置文件
    private static File configFile;
    //配置文件的最后修改时间
    private static long fileLastModify = 0L;

    static {
        try {
            // 组装文件路径
            String filePath = System.getProperty("user.dir") + System.getProperties().getProperty("file.separator") + "common.properties";

//            String filePath = "D:\\Program Files\\apache-tomcat-8.5.4\\bin\\common.properties";
            // 读取项目内部的文件方式
//            configFile = new File(ConfigPropertyTool.class.getResource("common.properties").getPath());
            // 读取外部配置文件的方式
            configFile = new File(filePath);
            load();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * 根据配置文件中的key,查找值
     *
     * @param name
     * @return
     */
    public static String getValue(String name) {
        long lm = configFile.lastModified();
        if (lm != fileLastModify) {
            load();
        }
        return props.getProperty(name);
    }

    /**
     * 重新加载配置文件配置项
     */
    private static void load() {
        try {
            InputStream is = new FileInputStream(configFile);
            BufferedReader bf = new BufferedReader(new InputStreamReader(is, "utf-8"));
            props.load(bf);
            fileLastModify = configFile.lastModified();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
//        System.out.println(getValue("sms_account"));

//        System.out.println("===========file.separator:" + System.getProperties().getProperty("file.separator"));
//
//        System.out.println("===========user.dir:" + System.getProperty("user.dir"));
//
//
//        String s = System.getProperty("user.dir") + System.getProperties().getProperty("file.separator") + "common.properties";
//        System.out.println("===========s:" + s);
    }
}
